﻿using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;

namespace ADiKt {
    class Globals {
        //Todo - volume controls
        //Todo - Resolution/Fullscreen

        //options ----------------------------------------------
        public static float turn_step = 0.075F; //turning circle
        public static float gap_chance = 0.005f;
        public static int gap_size = 10;
        public static int segment_length = 4;
        public static int num_rounds = 5; //TODO - use number in gamme

        //view ------------------------------------------------
        public static int width = 1000;
        public static int height = 800;
        public static Matrix viewProjMatrix;

        public static Random rand = new Random();
        public static int gridSize = 20;
        public static List<RoundLine>[,] points = new List<RoundLine>[gridSize+1, gridSize+1];
        public static int maxWorms = 8;

        //line details -----------------------------------------
        public static Dictionary<Color, string> colListUsed = new Dictionary<Color, string>();
        public static Dictionary<Color, string> colListFree = new Dictionary<Color, string>(){
            {Color.Red,"Red"},
            {Color.Blue, "Blue"},
            {Color.Green, "Green"},
            {Color.Cyan , "Cyan"},
            {Color.White , "White"},
            {Color.Yellow , "Yellow"},
            {Color.DeepPink , "Deep Pink"},
            {Color.Gray , "Gray"},
            {Color.GreenYellow , "Green/Yellow"},
            {Color.Purple , "Purple"}
        };

        public static List<Worm> worms = new List<Worm>(){
            //new Human(Keys.Left, Keys.Right, Color.Red),
            //new Human(Keys.Z, Keys.X, Color.Blue),
            //new AI(Color.Cyan),
            //new AI(Color.Green),
        };

        //TODO - way of choosing keys
         //public static Keys[,] keyPairs = new Keys[,] {
         //    { Keys.Left, Keys.Right }, 
         //    { Keys.Q, Keys.W }, 
         //    { Keys.X, Keys.C }, 
         //    { Keys.O, Keys.P } 
         //};

        public static Dictionary<object, string> difficulty = new Dictionary<object, string>(){
            {0, "Pathetic"},
            {1, "Poor"},
            {2, "Normal"},
            {3, "Super-human"},
            {4, "Super-nateral"},
        };
    }
}